package com.lagou.service;

import com.github.pagehelper.PageInfo;
import com.lagou.domain.Role;
import com.lagou.domain.User;
import com.lagou.domain.UserVO;

import java.util.List;
import java.util.Map;

public interface UserService {

    /**
     * 用户分页&条件查询
     *
     * @param userVO
     * @return
     */
    PageInfo<User> findAllUserByPage(UserVO userVO);

    /**
     * 修改用户状态
     *
     * @param id     用户id
     * @param status 用户状态
     */
    void updateUserStatus(Integer id, String status);

    /**
     * 用户登录
     * @param user
     * @return
     */
    User login(User user) throws Exception;

    /**
     * 分配角色(回显)
     * @param id 用户id
     * @return
     */
    List<Role> findUserRoleById(Integer id);

    /**
     * 分配角色
     * @param userVO
     */
    void userContextRole(UserVO userVO);

    /**
     * 获取用户权限
     * @param id 用户id
     * @return
     */
    Map<String, Object> getUserPermissions(Integer id);
}
